package com.ruoyi.yffy.mapper;

import java.util.List;
import com.ruoyi.yffy.domain.Lld;
import com.ruoyi.yffy.domain.LldFj;
import com.ruoyi.yffy.domain.LldMx;
import org.apache.ibatis.annotations.Param;

/**
 * 领料单Mapper接口
 *
 * @author huacai
 * @date 2024-04-11
 */
public interface LldMapper
{
    /**
     * 查询领料单
     *
     * @param lldId 领料单主键
     * @return 领料单
     */
    public Lld selectLldByLldId(Integer lldId);

    /**
     * 查询领料单列表
     *
     * @param lld 领料单
     * @return 领料单集合
     */
    public List<Lld> selectLldList(Lld lld);

    /**
     * 新增领料单
     *
     * @param lld 领料单
     * @return 结果
     */
    public int insertLld(Lld lld);

    /**
     * 修改领料单
     *
     * @param lld 领料单
     * @return 结果
     */
    public int updateLld(Lld lld);

    /**
     * 删除领料单
     *
     * @param lldId 领料单主键
     * @return 结果
     */
    public int deleteLldByLldId(Integer lldId);

    /**
     * 批量删除领料单
     *
     * @param lldIds 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteLldByLldIds(Integer[] lldIds);

    /**
     * 批量删除领料单附件
     *
     * @param lldIds 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteLldFjByLldIds(Integer[] lldIds);

    /**
     * 批量新增领料单附件
     *
     * @param lldFjList 领料单附件列表
     * @return 结果
     */
    public int batchLldFj(List<LldFj> lldFjList);


    /**
     * 通过领料单主键删除领料单附件信息
     *
     * @param lldId 领料单ID
     * @return 结果
     */
    public int deleteLldFjByLldId(Integer lldId);

    /**
     * 新增附件
     * @param lldFj
     * @return
     */
    int insertLlFjBylldId(LldFj lldFj);

    /**
     * 根据主表ID查询附件列表
     * @param lldFj
     * @return
     */
    List<LldFj> selectLldFjList(LldFj lldFj);

    /**
     * 批量删除领料明细
     *
     * @param lldIds 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteLldMxByLldIds(Integer[] lldIds);

    /**
     * 批量新增领料明细
     *
     * @param lldMxList 领料明细列表
     * @return 结果
     */
    public int batchLldMx(List<LldMx> lldMxList);


    /**
     * 通过领料单主键删除领料明细信息
     *
     * @param lldId 领料单ID
     * @return 结果
     */
    public int deleteLldMxByLldId(Integer lldId);

    /**
     * 通过领料单主键查询领料明细信息
     * @param lldId
     * @return
     */
    Lld selectLldMxByLldId(Integer lldId);

    /**
     * 查询当前最新的主表主键ID
     * @return
     */
    int selectMAXId();

    /**
     * 根据主表ID查询所有金额的总和
     * @param lldId
     * @return
     */
    Double selectLldMxMoneySumByLldId(@Param("lldId") Integer lldId);
}
